Anlagen von E-Mails automatisch speichern

Sie bekommen regelmäßig E-Mails mit Anlagen, die Sie manuell in einem bestimmten Ordner speichern. Diesen Vorgang möchten Sie gerne automatisieren.

Das notwendige Vorgehen zeigt ein einfaches Beispiel. Angenommen, Sie erhalten von Mitarbeitern regelmäßig Wochenberichte zugesandt, die Sie automatisch in einem bestimmten Ordner speichern möchten, um sie am Anfang der folgenden Woche zu sichten. Die entsprechenden Mails erkennen Sie am vereinbarten Betreff »Wochenbericht«.

Öffnen Sie Outlook XP und starten Sie mit dem Menübefehl »Extras | Makro | Visual Basic-Editor« den Visual-Basic-Editor. Klicken Sie im Projekt-Explorer nacheinander auf das kleine Pluszeichen vor dem Eintrag »Projekt1« und anschließend auf das vor »Microsoft Outlook Objekte«. Es erscheint der untergeordnete Eintrag »DieseOutlookSitzung«, den Sie per Doppelklick öffnen.

Wählen Sie in der linken Kombinationsbox oberhalb des Eingabebereichs »Application« und in der rechten Kombinationsbox »NewMail« aus. Outlook erzeugt daraufhin einen leeren Prozedurrumpf »Application_NewMail()«, den Sie wie folgt ergänzen:

Private Sub Application_NewMail()
Const constFolder = „C:\DatenWochenberichte“
Const constSubject = „Wochenbericht“

On Error Resume Next
Set objInbox = Application. GetNamespace(„MAPI“).GetDefaultFolder(olFolderInbox)
For Each objNewMail In objInbox.Items
If objNewMail.UnRead = True Then
If objNewMail.Subject = constSubject ThenintAttachments = objNewMail. Attachments.Count
If intAttachments > 0 Then
For intCounter = 1 To intAttachments
objNewMail.Attachments.Item (intCounter).SaveAsFile constFolder & „\“ &
objNewMail.Attachments.Item (intCounter).FileName
MsgBox objNewMail.Attachments. Item(intCounter).FileName & „ in „ & constFolder & „ gespeichert!“
Next
End If
End If
End If
Next objNewMail
End Sub
Die Variable »constFolder« speichert den Pfad, in dem Sie alle Anhänge einer Mail mit dem als »constSubject« angegebenen Betreff ablegen möchten. Speichern Sie Ihr VBA-Projekt, verlassen Sie den Visual-Basic-Editor, schließen Sie Outlook XP und starten Sie die Anwendung erneut.

Die Prozedur »Application_NewMail()« führt Outlook bei Empfang neuer E-Mails automatisch aus. Sie prüft alle ungelesenen Mails im Ordner »Posteingang« und speichert – vorausgesetzt der Betreff entspricht der in »constSubject« angegebenen Zeichenkette – die enthaltenen Anhänge im Pfad von »constFolder«. Außerdem erhält der Anwender für jede gespeicherte Datei eine Meldung.